package com.coolt.client.components;

import java.util.List;

import com.coolt.client.Labels;
import com.coolt.client.Util;
import com.coolt.client.model.Comunidade;
import com.coolt.client.model.mock.ComunidadeMO;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Communities extends DynamicTable {

	private Labels labelsConstants = GWT.create(Labels.class);

	public Communities() {

		setTitle(labelsConstants.menuCommunities());
		inicia(15);
		setTotalPages(1); // TO DO!!!
		carregarLista();
	}

	final AsyncCallback callbackCommunities = new AsyncCallback() {
		public void onSuccess(Object result) {

			setListTable((List<Comunidade>) result);
			displayTable();
			carregarLinkPaginas();
		}

		public void onFailure(Throwable caught) {
			displayFailure();
		}
	};

	public void carregarLista() {

		writeCharging();
		Comunidade comuni = new Comunidade();
		Util.getService().listaComunidades(comuni, getPageSize(), getPageNow(),
				callbackCommunities);
	}

	private void carregarListaStub() {
		setListTable(ComunidadeMO.listaComunidadeMO());
		displayTable();
		carregarLinkPaginas();
	}

	public VerticalPanel showElement(int i) {

		return Util.comunidadeImageNome(((List<Comunidade>) getListTable())
				.get(i));
	}

}
